/**
 * 更新饼图内半径
 * @param {string|number} value - 内半径百分比值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieInner(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.radius = series.radius || ['0%', '75%'];
                series.radius[0] = `${value}%`;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图外半径
 * @param {string|number} value - 外半径百分比值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieOuter(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.radius = series.radius || ['0%', '75%'];
                series.radius[1] = `${value}%`;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图是否顺时针排布
 * @param {string} value - 是否顺时针，'true'表示是
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieClockwise(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.clockWise = value === 'true';
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图起始角度
 * @param {*} value - 起始角度值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieStartAngle(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.startAngle = value;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图最小扇区角度
 * @param {*} value - 最小角度值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieMinAngle(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.minAngle = value;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图最小扇区标签显示角度
 * @param {*} value - 最小角度值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieMinShowLabelAngle(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.minShowLabelAngle = value;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图项样式边框圆角
 * @param {*} value - 圆角值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieItemStyleBorderRadius(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.itemStyle = series.itemStyle || {};
                series.itemStyle.borderRadius = value;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图是否为南丁格尔图（玫瑰图）
 * @param {string|boolean} value - 玫瑰图类型（如'radius'、'area'或false）
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieRoseType(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.roseType = value || false;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图选中模式
 * @param {string} value - 选中模式（如'single'、'multiple'等）
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieSelectedMode(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.selectedMode = value;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图选中偏移量
 * @param {*} value - 偏移量值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieSelectedOffset(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.selectedOffset = value;
            }
        });
    }
    return currentOptions;
}
/**
 * 更新饼图内外半径（整体设置）
 * @param {Array} value - 半径数组，如['内半径%', '外半径%']
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieRadius(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.radius = Array.isArray(value) ? value : ['0%', '75%'];
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图中心位置
 * @param {Array} value - 中心位置数组，如['水平位置%', '垂直位置%']
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieCenter(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.center = Array.isArray(value) ? value : ['50%', '50%'];
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图标签显示状态
 * @param {string} value - 显示状态，'true'表示显示
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieLabelShow(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.label = series.label || {};
                series.label.show = value === 'true';
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图标签位置
 * @param {string} value - 位置值（如'inside'、'outside'等）
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieLabelPosition(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.label = series.label || {};
                series.label.position = value;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图标签格式化器
 * @param {string} value - 格式化字符串
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieLabelFormatter(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.label = series.label || {};
                series.label.formatter = value || '{c}';
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图标签连接线显示状态
 * @param {string} value - 显示状态，'true'表示显示
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieLabelLineShow(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.labelLine = series.labelLine || {};
                series.labelLine.show = value === 'true';
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图标签连接线第一段长度
 * @param {number} value - 长度值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieLabelLineLength(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.labelLine = series.labelLine || {};
                series.labelLine.length = Number(value) || 20;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图标签连接线第二段长度
 * @param {number} value - 长度值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updatePieLabelLineLength2(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.labelLine = series.labelLine || {};
                series.labelLine.length2 = Number(value) || 15;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图扇区间隔角度
 * @param {number} value - 间隔角度值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateSeriesPadAngle(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.padAngle = Number(value) || 0;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图系列名称
 * @param {string} value - 系列名称
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateSeriesName(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.name = value || '';
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图高亮状态阴影模糊度
 * @param {number} value - 阴影模糊度值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateEmphasisShadowBlur(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.emphasis = series.emphasis || {};
                series.emphasis.itemStyle = series.emphasis.itemStyle || {};
                series.emphasis.itemStyle.shadowBlur = Number(value) || 0;
            }
        });
    }
    return currentOptions;
}

/**
 * 更新饼图高亮状态阴影颜色
 * @param {string} value - 阴影颜色值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateEmphasisShadowColor(value, currentOptions) {
    if (currentOptions.series && Array.isArray(currentOptions.series)) {
        currentOptions.series.forEach(series => {
            if (series.type === 'pie') {
                series.emphasis = series.emphasis || {};
                series.emphasis.itemStyle = series.emphasis.itemStyle || {};
                series.emphasis.itemStyle.shadowColor = value || 'rgba(0, 0, 0, 0.5)';
            }
        });
    }
    return currentOptions;
}